home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / AVComponents.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  14KB  |  343 lines

  1. /*
  2.      File:        AVComponents.h
  3.  
  4.      Contains:    Standard includes for standard AV panels
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __AVCOMPONENTS__
  19. #define __AVCOMPONENTS__
  20.  
  21. #ifndef __DIALOGS__
  22. #include <Dialogs.h>
  23. #endif
  24. #ifndef __VIDEO__
  25. #include <Video.h>
  26. #endif
  27. #ifndef __DISPLAYS__
  28. #include <Displays.h>
  29. #endif
  30. #ifndef __COMPONENTS__
  31. #include <Components.h>
  32. #endif
  33.  
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37.  
  38. #if PRAGMA_IMPORT_SUPPORTED
  39. #pragma import on
  40. #endif
  41.  
  42. #if PRAGMA_ALIGN_SUPPORTED
  43. #pragma options align=mac68k
  44. #endif
  45.  
  46. #ifndef FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  47. #define FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE 1
  48. #endif
  49. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  50. /*
  51.     The subtypes listed here are for example only.  The display manager will find _all_ panels
  52.       with the appropriate types.  These panels return class information that is used to devide them
  53.       up into groups to be displayed in the AV Windows (class means "geometry" or "color" or other groupings
  54.       like that.
  55. */
  56.  
  57. enum {
  58.     kAVPanelType                = 'avpc',                        /* Panel subtypes            */
  59.     kBrightnessPanelSubType        = 'brit',
  60.     kContrastPanelSubType        = 'cont',
  61.     kBitDepthPanelSubType        = 'bitd',
  62.     kAVEngineType                = 'avec',                        /* Engine subtypes                */
  63.     kBrightnessEngineSubType    = 'brit',
  64.     kContrastEngineSubType        = 'cont',                        /*        kBitDepthEngineSubType        = 'bitd',            // Not used                    */
  65.     kAVPortType                    = 'avdp'                        /*subtypes are defined in each port's public .h file*/
  66. };
  67.  
  68. /*
  69.  PortComponent subtypes are up to the port and display manager does not use the subtype
  70.     to find port components.  Instead, display manager uses an internal cache to search for portcompoennts.
  71.     It turns out to be useful to have a unique subtype so that engines can see if they should apply themselves to
  72.     a particular port component.
  73.   
  74.    PortKinds are the "class" of port.  When a port is registered with display manager (creating a display ID), the
  75.     caller of DMNewDisplayIDByPortComponent passes a portKind.  Ports of this type are returned by
  76.     DMNewDevicePortList.
  77.   
  78.    PortKinds are NOT subtypes of components
  79.    PortKinds ARE used to register and find port components with Display Manager.  Here are the basic port kinds:
  80.   
  81.    Video displays are distinct from video out because there are some video out ports that are not actaully displays.
  82.     if EZAV is looking to configure displays, it needs to look for kAVVideoDisplayPortKind not kAVVideoOutPortKind.
  83. */
  84.  
  85. enum {
  86.     kAVVideoDisplayPortKind        = 'pkdo',                        /* Video Display (CRT or panel display)                */
  87.     kAVVideoOutPortKind            = 'pkvo',                        /* Video out port (camera output).                      */
  88.     kAVVideoInPortKind            = 'pkvi',                        /* Video in port (camera input)                        */
  89.     kAVSoundOutPortKind            = 'pkso',                        /* Sound out port (speaker or speaker jack)            */
  90.     kAVSoundInPortKind            = 'pksi',                        /* Sound in port (microphone or microphone jack)    */
  91.     kAVDeviceType                = 'avdc',                        /* Device Component subtypes are up to the manufacturor since each device may contain multiple function types (eg telecaster) */
  92.     kAVDisplayDeviceKind        = 'dkvo',                        /* Display device*/
  93.                                                                 /* Device Component subtypes are up to the manufacturor since each device may contain multiple function types (eg telecaster)*/
  94.     kAVCategoryType                = 'avcc',
  95.     kAVSoundInSubType            = 'avao',
  96.     kAVSoundOutSubType            = 'avai',
  97.     kAVVideoInSubType            = 'vdin',
  98.     kAVVideoOutSubType            = 'vdou',
  99.     kAVInvalidType                = 'badt'                        /* Some calls return a component type, in case of errors, these types are set to kAVInvalidComponentType */
  100. };
  101.  
  102. /*
  103.  Constants for Panel Classes (used to build buttons in AVSetup) 
  104.  but is generic to all panels 
  105. */
  106.  
  107. enum {
  108.     kAVPanelClassDisplayDefault    = 'cdsp',
  109.     kAVPanelClassColor            = 'cclr',
  110.     kAVPanelClassGeometry        = 'cgeo',
  111.     kAVPanelClassSound            = 'csnd',
  112.     kAVPanelClassPreferences    = 'cprf'
  113. };
  114.  
  115. /* =============================                    */
  116. /* Component interface revision levels and history    */
  117. /* =============================                    */
  118.  
  119. enum {
  120.     kAVPanelComponentInterfaceRevOne = 1,
  121.     kAVEngineComponentInterfaceRevOne = 1,
  122.     kAVPortComponentInterfaceRevOne = 1,
  123.     kAVDeviceComponentInterfaceRevOne = 1
  124. };
  125.  
  126.  
  127. enum {
  128.     kBaseAVComponentSelector    = 256                            /* First apple-defined selector for engine components */
  129. };
  130.  
  131. /* =============================                */
  132. /* Panel Standard component selectors            */
  133. /* =============================                */
  134.  
  135. enum {
  136.     kAVPanelFakeRegisterSelect    = kComponentRegisterSelect,        /* -5    */
  137.     kAVPanelSetCustomDataSelect    = 0,
  138.     kAVPanelGetDitlSelect        = 1,
  139.     kAVPanelGetTitleSelect        = 2,
  140.     kAVPanelInstallSelect        = 3,
  141.     kAVPanelEventSelect            = 4,
  142.     kAVPanelItemSelect            = 5,
  143.     kAVPanelRemoveSelect        = 6,
  144.     kAVPanelValidateInputSelect    = 7,
  145.     kAVPanelGetSettingsIdentifiersSelect = 8,
  146.     kAVPanelGetSettingsSelect    = 9,
  147.     kAVPanelSetSettingsSelect    = 10,
  148.     kAVPanelSelectorGetFidelity    = kBaseAVComponentSelector,
  149.     kAVPanelSelectorTargetDevice = 257,
  150.     kAVPanelSelectorGetPanelClass = 258
  151. };
  152.  
  153. /* =============================                */
  154. /* Engine Standard component selectors            */
  155. /* =============================                */
  156.  
  157. enum {
  158.     kAVEngineSelectorGetEngineFidelity = kBaseAVComponentSelector,
  159.     kAVEngineSelectorTargetDevice = 257
  160. };
  161.  
  162. /* =============================                    */
  163. /* Video Port Specific calls                        */
  164. /* =============================                    */
  165.  
  166. enum {
  167.     kAVPortCheckTimingMode        = 0
  168. };
  169.  
  170. /* =============================                    */
  171. /* AV Port Specific calls                            */
  172. /* =============================                    */
  173.  
  174. enum {
  175.     kAVPortGetAVDeviceFidelity    = kBaseAVComponentSelector,        /* Port Standard Component selectors */
  176.     kAVPortGetWiggle            = 257,
  177.     kAVPortSetWiggle            = 258,
  178.     kAVPortGetName                = 259,
  179.     kAVPortGetGraphicInfo        = 260,
  180.     kAVPortSetActive            = 261,
  181.     kAVPortGetActive            = 262,
  182.     kAVPortUnsed1                = 263,                            /* Selector removed as part of API change.  We don't want to mess up the following selectors, so we put in this spacer (ie kPadSelector). */
  183.     kAVPortGetAVID                = 264,
  184.     kAVPortSetAVID                = 265,
  185.     kAVPortSetDeviceAVID        = 266,                            /* For registrar to set device (instead of hitting global directly) -- should only be called once */
  186.     kAVPortGetDeviceAVID        = 267,                            /* Called by display mgr for generic ports */
  187.     kAVPortGetPowerState        = 268,
  188.     kAVPortSetPowerState        = 269
  189. };
  190.  
  191. /* =============================                    */
  192. /* Device Component Standard Component selectors    */
  193. /* =============================                    */
  194.  
  195. enum {
  196.     kAVDeviceGetName            = kBaseAVComponentSelector,
  197.     kAVDeviceGetGraphicInfo        = 257,
  198.     kAVDeviceGetPowerState        = 258,
  199.     kAVDeviceSetPowerState        = 259,
  200.     kAVDeviceGetAVID            = 260,                            /*        Not yet implemented*/
  201.     kAVDeviceSetAVID            = 261                            /* For registrar to set AVID (should be called only once)*/
  202. };
  203.  
  204. /* =============================                */
  205. /* Engine Standard component selectors            */
  206. /* =============================                */
  207. extern pascal ComponentResult AVEngineComponentGetFidelity(ComponentInstance engineComponent, DisplayIDType displayID, DMFidelityType *engineFidelity)
  208.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0100, 0x7000, 0xA82A);
  209.  
  210. extern pascal ComponentResult AVEngineComponentTargetDevice(ComponentInstance engineComponent, DisplayIDType displayID)
  211.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  212.  
  213. /* =============================                */
  214. /* Panel Standard Component calls                */
  215. /* =============================                */
  216. extern pascal ComponentResult AVPanelFakeRegister(ComponentInstance ci)
  217.  FIVEWORDINLINE(0x2F3C, 0x0000, 0xFFFB, 0x7000, 0xA82A);
  218.  
  219. extern pascal ComponentResult AVPanelSetCustomData(ComponentInstance ci, long theCustomData)
  220.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0000, 0x7000, 0xA82A);
  221.  
  222. extern pascal ComponentResult AVPanelGetDitl(ComponentInstance ci, Handle *ditl)
  223.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A);
  224.  
  225. extern pascal ComponentResult AVPanelGetTitle(ComponentInstance ci, StringPtr title)
  226.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0002, 0x7000, 0xA82A);
  227.  
  228. extern pascal ComponentResult AVPanelInstall(ComponentInstance ci, DialogPtr dialog, short itemOffset)
  229.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0003, 0x7000, 0xA82A);
  230.  
  231. extern pascal ComponentResult AVPanelEvent(ComponentInstance ci, DialogPtr dialog, short itemOffset, EventRecord *event, short *itemHit, Boolean *handled)
  232.  FIVEWORDINLINE(0x2F3C, 0x0012, 0x0004, 0x7000, 0xA82A);
  233.  
  234. extern pascal ComponentResult AVPanelItem(ComponentInstance ci, DialogPtr dialog, short itemOffset, short itemNum)
  235.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A);
  236.  
  237. extern pascal ComponentResult AVPanelRemove(ComponentInstance ci, DialogPtr dialog, short itemOffset)
  238.  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0006, 0x7000, 0xA82A);
  239.  
  240. extern pascal ComponentResult AVPanelValidateInput(ComponentInstance ci, Boolean *ok)
  241.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  242.  
  243. extern pascal ComponentResult AVPanelGetSettingsIdentifiers(ComponentInstance ci, short *theID, OSType *theType)
  244.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
  245.  
  246. extern pascal ComponentResult AVPanelGetSettings(ComponentInstance ci, Handle *userDataHand, long flags, DialogPtr theDialog, long itemsOffset)
  247.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0009, 0x7000, 0xA82A);
  248.  
  249. extern pascal ComponentResult AVPanelSetSettings(ComponentInstance ci, Handle userDataHand, long flags, DialogPtr theDialog, long itemsOffset)
  250.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x000A, 0x7000, 0xA82A);
  251.  
  252. extern pascal ComponentResult AVPanelGetFidelity(ComponentInstance panelComponent, DisplayIDType displayID, DMFidelityType *panelFidelity)
  253.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0100, 0x7000, 0xA82A);
  254.  
  255. extern pascal ComponentResult AVPanelComponentTargetDevice(ComponentInstance panelComponent, DisplayIDType displayID, DialogPtr theDialog, long itemsOffset)
  256.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0101, 0x7000, 0xA82A);
  257.  
  258. extern pascal ComponentResult AVPanelComponentGetPanelClass(ComponentInstance panelComponent, ResType *panelClass, ResType *subClass, Ptr reserved1, Ptr reserved2)
  259.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0102, 0x7000, 0xA82A);
  260.  
  261. /* =============================                */
  262. /* Port Component Standard Component selectors    */
  263. /* =============================                */
  264. extern pascal ComponentResult AVPortGetAVDeviceFidelity(ComponentInstance portComponent, AVIDType deviceAVID, DMFidelityType *portFidelity)
  265.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0100, 0x7000, 0xA82A);
  266.  
  267. extern pascal ComponentResult AVPortGetWiggle(ComponentInstance portComponent, Boolean *wiggleDevice)
  268.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  269.  
  270. extern pascal ComponentResult AVPortSetWiggle(ComponentInstance portComponent, Boolean wiggleDevice)
  271.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0102, 0x7000, 0xA82A);
  272.  
  273. extern pascal ComponentResult AVPortGetName(ComponentInstance portComponent, Str255 portName)
  274.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  275.  
  276. extern pascal ComponentResult AVPortGetGraphicInfo(ComponentInstance portComponent, PicHandle *thePict, Handle *theIconSuite, AVLocationPtr theLocation)
  277.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0104, 0x7000, 0xA82A);
  278.  
  279. extern pascal ComponentResult AVPortSetActive(ComponentInstance portComponent, Boolean setActive)
  280.  FIVEWORDINLINE(0x2F3C, 0x0002, 0x0105, 0x7000, 0xA82A);
  281.  
  282. extern pascal ComponentResult AVPortGetActive(ComponentInstance portComponent, Boolean *isPortActive, Boolean *portCanBeActivated, void *reserved)
  283.  FIVEWORDINLINE(0x2F3C, 0x0008, 0x0106, 0x7000, 0xA82A);
  284.  
  285. extern pascal ComponentResult AVPortGetAVID(ComponentInstance portComponent, AVIDType *avDeviceID)
  286.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0108, 0x7000, 0xA82A);
  287.  
  288. extern pascal ComponentResult AVPortSetAVID(ComponentInstance portComponent, AVIDType avDeviceID)
  289.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0109, 0x7000, 0xA82A);
  290.  
  291. extern pascal ComponentResult AVPortSetDeviceAVID(ComponentInstance portComponent, AVIDType avDeviceID)
  292.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A);
  293.  
  294. extern pascal ComponentResult AVPortGetDeviceAVID(ComponentInstance portComponent, AVIDType *avDeviceID)
  295.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x010B, 0x7000, 0xA82A);
  296.  
  297. extern pascal ComponentResult AVPortGetPowerState(ComponentInstance deviceComponent, AVPowerStatePtr getPowerState)
  298.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x010C, 0x7000, 0xA82A);
  299.  
  300. extern pascal ComponentResult AVPortSetPowerState(ComponentInstance deviceComponent, AVPowerStatePtr setPowerState)
  301.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x010D, 0x7000, 0xA82A);
  302.  
  303. /* =============================                */
  304. /* Video Out Port Component Selectors            */
  305. /* =============================                */
  306. extern pascal ComponentResult AVPortCheckTimingMode(ComponentInstance displayComponent, DisplayIDType theDisplayID, VDDisplayConnectInfoPtr connectInfo, VDTimingInfoPtr modeTiming, unsigned long reserved)
  307.  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0000, 0x7000, 0xA82A);
  308.  
  309. /* =============================                */
  310. /* AV Device Component Selectors                */
  311. /* =============================                */
  312. extern pascal ComponentResult AVDeviceGetName(ComponentInstance portComponent, Str255 portName)
  313.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  314.  
  315. extern pascal ComponentResult AVDeviceGetGraphicInfo(ComponentInstance portComponent, PicHandle *thePict, Handle *theIconSuite, AVLocationPtr theLocation)
  316.  FIVEWORDINLINE(0x2F3C, 0x000C, 0x0101, 0x7000, 0xA82A);
  317.  
  318. extern pascal ComponentResult AVDeviceGetPowerState(ComponentInstance deviceComponent, AVPowerStatePtr getPowerState)
  319.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  320.  
  321. extern pascal ComponentResult AVDeviceSetPowerState(ComponentInstance deviceComponent, AVPowerStatePtr setPowerState)
  322.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  323.  
  324. extern pascal ComponentResult AVDeviceSetAVID(ComponentInstance deviceComponent, AVIDType avDeviceID)
  325.  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
  326.  
  327. #endif
  328.  
  329. #if PRAGMA_ALIGN_SUPPORTED
  330. #pragma options align=reset
  331. #endif
  332.  
  333. #if PRAGMA_IMPORT_SUPPORTED
  334. #pragma import off
  335. #endif
  336.  
  337. #ifdef __cplusplus
  338. }
  339. #endif
  340.  
  341. #endif /* __AVCOMPONENTS__ */
  342.  
  343.